package myStack;

import java.util.Stack;

class MyQueue {
    private Stack<Integer> stack1 ;
    private Stack<Integer> stack2 ;
    public MyQueue() {
        this.stack1 = new Stack<>();
        this.stack2 = new Stack<>();
    }
    
    public void push(int x) {
        if(empty()) {
            stack1.push(x);
        }else {
            if(stack1.empty()) {
                stack2.push(x);
            }else {
                stack1.push(x);
            }
        }
    }
    
    public int pop() {
        if(empty()) {
            return - 1;
        }else {
            int n = 0;
            if(stack1.empty()) {
                int size = stack2.size();
                for(int i = 0;i < size - 1;i++) {
                    n = stack2.pop();
                    stack1.push(n);
                }
                return stack2.pop();
            }else {
                int size = stack1.size();
                for(int i = 0; i < size - 1;i++) {
                    n = stack1.pop();
                    stack1.push(n);
                }
                return stack1.pop();
            }
        }
    }
    
    public int peek() {
        if(empty()) {
            return - 1;
        }else {
            if(stack1.empty()) {
                int n = 0;
                int size = stack2.size();
                for(int i = 0;i < size;i++) {
                    n = stack2.pop();
                    stack1.push(n);
                }
                return n;
            }else {
                int size = stack1.size();
                int n = 0;
                for(int i = 0; i < size;i++) {
                    n = stack1.pop();
                    stack2.push(n);
                }
                return n;
            }
        }
    }
    
    public boolean empty() {
        if(stack1.empty() && stack2.empty()) {
            return true;
        }
        return false;
    }
}